package tech.aistar.day05.statics;

/**
 * 本类用来演示:
 * 1. 对所有的静态的属性分配空间以及初始化
 *
 * 2. 对所有的静态的方法分配空间以及初始化
 *
 * 3. 调用静态代码块
 *
 * 4. 如果遇到创建对象
 *
 *    4-1. 给所有的非静态的属性分配空间以及初始化
 *
 *    4-2. 给所有的非静态的方法分配空间以及初始化
 *
 *    4-3. 调用普通代码块
 *
 *    4-4. 调用构造块
 *
 * @author: success
 * @date: 2022/7/22 3:05 下午
 */
public class JVMLoadClass {


    public int id = 1;

    //普通代码块 - 只要new - 遇到创建对象
    {
        System.out.println("普通代码块-id:"+id);
        System.out.println("普通代码块-sid:"+sid);
    }
    public static int sid=100;

    //构造块
    public JVMLoadClass(){
        System.out.println("构造块-id:"+id);
        System.out.println("构造块-sid:"+sid);
    }

    public static void test(){
        System.out.println("sid:"+sid);
    }

    //静态代码块
    static{
        System.out.println("静态代码块-sid:"+sid);
    }

    public static void main(String[] args) {
        JVMLoadClass load1 = new JVMLoadClass();
        JVMLoadClass load2 = new JVMLoadClass();
    }
}
